const Generator = require('yeoman-generator');

module.exports = class extends Generator {
    // 返回一个promise
    prompting() {
        /**
         * prompt 接收一个list的入参，每个元素是一个问题，
         * 返回值是 [name]: [input] 组成的对象
         */
        return this.prompt([
            {
                type: 'input',
                name: 'name',
                message: 'your priject name:',
                default: this.appname // appname 为项目生成目录
            }
        ]).then(answers => {
            // { name: ''}
            this.answers = answers;
        });
    }
    writing() {
        // yeoman 自动生成文件
        // this.fs.write(
        //     this.destinationPath('temp.txt'),
        //     Math.random().toString()
        // );

        // // yeoman 模板文件(使用 EJS)
        // // 模板路径
        // const tml = this.templatePath('foo.txt');
        // // 输出路径
        // const outPath = this.destinationPath('foo_output.txt');
        // // 数据上下文
        // const context = {
        //     title: '这是模板的title',
        //     success: true
        // };
        // this.fs.copyTpl(tml, outPath, context);

         // yeoman 模板文件(使用 EJS)
        // 模板路径
        const tml = this.templatePath('bar.html');
        // 输出路径
        const outPath = this.destinationPath('bar_output.html');
        // 数据上下文
        const context = this.answers;
        console.log('context', context);
        this.fs.copyTpl(tml, outPath, context);
    }
}